﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;
using DAO;
namespace BUS
{
    public class AccountBUS
    {
        AccountDAO dao;
        public AccountBUS()
        {
            dao = new AccountDAO();
        }
        /// <summary>
        /// Kiểm tra 1 email
        /// </summary>
        /// <param name="email">email cần kiểm tra</param>
        /// <returns>true nếu tồn tại, false nếu chưa tồn tại</returns>
        public bool CheckEmail(string email)
        {
            return dao.EmailExists(email);
        }
        /// <summary>
        /// Tạo mới tài khoản, gửi đối tượng cho DAO
        /// </summary>
        /// <param name="account"></param>
        /// <returns>1 nếu thành công, 0 nếu thất bại</returns>
        public int CreateNewAccount(AccountDTO account)
        {
            return dao.InsertAccount(account);
        }
        /// <summary>
        /// Cập nhật tài khoản
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        public bool UpdateAccountInfo(AccountDTO account)
        {
            return dao.UpdateAccount(account); 
        }

        /// <summary>
        /// Lấy 1 account
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public AccountDTO GetAccountInfo(string email)
        {
            return dao.GetAccountInfo(email);
        }
        
        /// <summary>
        /// Kiểm tra password của nsd ứng mới email có đúng hay ko
        /// gọi hàm verifyHash để kiểm tra
        /// </summary>
        /// <param name="email">email của người dùng</param>
        /// <param name="password">password cần kiểm tra</param>
        /// <returns>true nếu đúng pass, false nếu pass sai</returns>
        public bool  CheckPassword(string email,string password)
        {
            OurHash hash = new OurHash();
            AccountDTO account = GetAccountInfo(email);
            string strHash = account.Hash;
            return hash.VerifyHash(password, "", strHash);

        }
        private void GenHash()
        { 
        }
    }
}
